function signal_new = farrow_int(fs_old,fs_new,signal)
    i = 1;
    while(i*fs_old/fs_new<=length(signal))
       km = floor(i*fs_old/fs_new);
       delay_frac = i*fs_old/fs_new - km;
       if(km>=4)
           f1 = 0.5*signal(km)-0.5*signal(km-1)-0.5*signal(km-2)+0.5*signal(km-3);
           f2 = 1.5*signal(km-1)-0.5*signal(km)-0.5*signal(km-2)-0.5*signal(km-3);
           f3 = signal(km-2);
           signal_new(i) = f1*delay_frac*delay_frac+f2*delay_frac+f3;
       else
           signal_new(i) = 0;
       end
       i=i+1;
    end
    signal_new = conj(signal_new');
end

